Skip to content

fix(ai-accounts): stop painting the healthy state green - #936

Merged
kittors merged 2 commits into
devfrom
fix/quota-card-neutral-healthy-tone
Aug 21, 2026
Merged

fix(ai-accounts): stop painting the healthy state green#936
kittors merged 2 commits into
devfrom
fix/quota-card-neutral-healthy-tone

Conversation

@kittors

@kittors kittors commented Aug 21, 2026

Copy link
Copy Markdown
Owner

Panel-only. No backend change.

The problem

A card at rest lights five emerald surfaces at once:

Surface Source Fires when
Plan badge SUBSCRIPTION_TONE_CLASSES.active subscription valid
Quota chip border + background chipClass quota β‰₯ 60%
Quota chip label chipLabelClass quota β‰₯ 60%
Quota percent percentClass quota β‰₯ 60%
Success rate successRateClass rate β‰₯ 90%

All five fire for an account in good standing β€” which is most accounts β€” so a healthy card renders as one flat green field. Green became the colour of nothing happening, and a colour that is always on cannot signal anything. Worse, the amber and rose tones that flag a quota actually worth acting on have to compete with it for attention.

Note this is not a layout problem: the four stat chips (0 / 4334 / 547.1M / 99.7%) were already neutral slate-100. They just read as green by association with everything around them.

The change

All five surfaces return to the neutral slate the stat chips already use. The progress ring keeps its emerald fill, so a healthy quota still reads as healthy β€” the green is compressed from a full-card background down to a 14px ring.

Untouched on purpose: amber (20–60%), rose (<20%), the warning / urgent / expired subscription tones, and sub-90% success rates. They are now the only coloured things on the grid, which is the whole point.

Verified

Rendered against the app's own compiled CSS at three states:

  • healthy β†’ fully neutral, nothing competes for attention
  • 12% + 45% mix β†’ those two rows pop out of an otherwise grey card
  • exhausted + degraded success rate β†’ rose reads immediately

Gates: design:check βœ… Β· lint 0 errors βœ… Β· size:check βœ… Β· surface:check βœ… Β· boundary:imports βœ… Β· build βœ… Β· 243 tests / 21 files βœ…

The second commit removes a two-line code comment: useAuthFilesFilesPresentation.tsx is above the 800-line limit, the gate only lets such files shrink, and the comment pushed it 974 β†’ 976. The reasoning lives in the first commit message instead.

πŸ€– Generated with Claude Code

kittors and others added 2 commits August 21, 2026 14:13
A card at rest lit five emerald surfaces at once: the plan badge, the
quota chip's border, its background, its label, and the success rate.
Every account in good standing therefore rendered as one flat green
field, and a colour that is always on cannot signal anything β€” the
amber and rose tones meant to flag a quota worth acting on had to
compete with it for attention.

Return all five to the neutral slate the surrounding chips already use
and keep only the progress ring green, so a healthy quota still reads
as healthy without claiming the whole card. The amber (20-60%) and rose
(<20%) branches, the warning/urgent/expired subscription tones and the
sub-90% success rates are deliberately untouched: they are now the only
coloured things on the grid, which is the point.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
useAuthFilesFilesPresentation.tsx sits above the 800-line limit and the
gate only lets such files shrink, so the two explanatory lines added
with the neutral subscription tone pushed it from 974 to 976. The
reasoning lives in the previous commit message instead.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant